home *** CD-ROM | disk | FTP | other *** search
Java Source | 2000-06-23 | 2.9 KB | 102 lines |
- import com.apple.mrj.jdirect.Struct;
- import com.apple.mrj.jdirect.ByteArrayStruct;
-
- /**
- * Apple Worldwide Developer Technical Support
- *
- * A simple example of how to obtain the mouse location using the Mac OS Toolbox through JDirect 2.
- *
- * File: PointStruct.java
- *
- * <CODE>PointStruct</CODE> is a class which mimics the C struct <CODE>Point</CODE> defined in <CODE>MacTypes.h</CODE><BR><BR>
- * This class contains a get and set method for each field in <CODE>Point</CODE>.<BR><BR>
- * Using JDirect 2.0, a <CODE>PointStruct</CODE> can be passed to a native toolbox function
- * that expects a pointer to a <CODE>Point</CODE> by using the <CODE>getByteArray()</CODE> method.
- *
- * @author Apple Computer, Inc.
- *
- * Copyright ©1999 Apple Computer, Inc.
- * All rights reserved.
- *
- * @version 1.0
- * 4/15/1999 Shipped as 'JDirectMouse' sample.
- *
- * You may incorporate this sample code into your applications without
- * restriction, though the sample code has been provided "AS IS" and the
- * responsibility for its operation is 100% yours. However, what you are
- * not permitted to do is to redistribute the source as "Apple Sample
- * Code" after having made changes. If you're going to re-distribute the
- * source, we require that you make it clear in the source that the code
- * was descended from Apple Sample Code, but that you've made changes.
- */
- public class PointStruct extends ByteArrayStruct
- {
- /**
- * Constructs an uninitialized <CODE>PointStruct</CODE>
- */
- public PointStruct() {
- super(sizeOfPoint);
- }
-
- /**
- * Constructs a <CODE>PointStruct</CODE> and initializes it with the data in another <CODE>Struct</CODE>.
- * Useful when a C struct <CODE>Point</CODE> is embedded in another C struct and you want to
- * copy it out.
- * @param src the <CODE>Struct</CODE> containing the data to be copied
- * @param offsetInSrc the offest in of the data in <CODE>src</CODE>
- */
- public PointStruct(Struct src, int offsetInSrc) {
- super(sizeOfPoint);
- byte[] bytes = src.getBytesAt(offsetInSrc, sizeOfPoint);
- this.setBytesAt(0, bytes);
- }
-
- /**
- * Used only by subclasses of <CODE>PointStruct</CODE>
- */
- protected PointStruct(int size) {
- super(size);
- }
-
- /**
- * in C: <CODE>short v</CODE>
- * @return field <CODE>v</CODE> of <CODE>struct Point</CODE>
- */
- public final short getV() {
- return getShortAt(0);
- }
-
- /**
- * in C: <CODE>short v</CODE>
- * @param v sets field <CODE>v</CODE> of <CODE>struct Point</CODE>
- */
- public final void setV(short v) {
- setShortAt(0, v);
- }
-
- /**
- * in C: <CODE>short h</CODE>
- * @return field <CODE>h</CODE> of <CODE>struct Point</CODE>
- */
- public final short getH() {
- return getShortAt(2);
- }
-
- /**
- * in C: <CODE>short h</CODE>
- * @param h sets field <CODE>h</CODE> of <CODE>struct Point</CODE>
- */
- public final void setH(short h) {
- setShortAt(2, h);
- }
-
- /**
- * Size of <CODE>struct Point</CODE> in bytes
- */
- public final static int sizeOfPoint = 4;
-
- public int getValue() {
- return getIntAt(0);
- }
- }
-